]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
dateMenu: Show minutes for timezones that have minutes offset
authorJonas Dreßler <verdre@v0yd.nl>
Thu, 19 Mar 2020 19:53:19 +0000 (20:53 +0100)
committerFlorian Müllner <florian.muellner@gmail.com>
Thu, 19 Mar 2020 21:16:47 +0000 (21:16 +0000)
Some timezones, like the one of Kathmandu don't only have hour-based
timezone offsets, but their timezones are also offset by minutes. So
instead of showing weird values like "+5.8", show the minutes properly
in a format like "+5:45".

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2438

js/ui/dateMenu.js

index 14a0ef48d669f3e2baa489441cad31001d9b7511..a10c6fcf46ef53374fcfd8824176c82acd4d96d1 100644 (file)
@@ -182,14 +182,19 @@ class WorldClocksSection extends St.Button {
 
             const utcOffset = this._getTimeAtLocation(l).get_utc_offset();
             const offsetCurrentTz = utcOffset - localOffset;
-            const offsetHours = offsetCurrentTz / GLib.TIME_SPAN_HOUR;
+            const offsetHours = Math.abs(offsetCurrentTz) / GLib.TIME_SPAN_HOUR;
+            const offsetMinutes =
+                (Math.abs(offsetCurrentTz) % GLib.TIME_SPAN_HOUR) /
+                GLib.TIME_SPAN_MINUTE;
 
-            const fmt = Math.trunc(offsetHours) == offsetHours ? '%s%.0f' : '%s%.1f';
             const prefix = offsetCurrentTz >= 0 ? '+' : '-';
+            const text = offsetMinutes === 0
+                ? '%s%d'.format(prefix, offsetHours)
+                : '%s%d\u2236%d'.format(prefix, offsetHours, offsetMinutes);
 
             const tz = new St.Label({
                 style_class: 'world-clocks-timezone',
-                text: fmt.format(prefix, Math.abs(offsetHours)),
+                text,
                 x_align: Clutter.ActorAlign.END,
                 y_align: Clutter.ActorAlign.CENTER,
             });